# 用户控制器，用于处理用户相关的操作
class UsersController < ApplicationController

  layout "admin/register"

  before_action :auth_user, only: [:show]


  # 显示用户详情操作
  def show
    # 根据用户ID查找用户对象，如果找不到，则重定向到登录页面，并显示错误信息
    print(session[:id])
    @user = User.find_by(id: session[:user_id])
    unless @user
      redirect_to login_path, alert: "用户不存在"
    end
  end

  # 新建用户页面
  def new
    # 初始化一个新用户对象，用于在视图中渲染用户表单
    @user = User.new
  end

  # 用户参数允许列表
  def user_params
    # 确保只接收:user参数，并且只允许:username, :password, :password_confirmation字段
    params.require(:user).permit(:username, :password, :password_confirmation)
  end

  # 创建用户操作
  def create
    # 根据用户参数初始化一个新用户对象
    @user = User.new(user_params)
    # 尝试保存用户对象
    if @user.save
      # 如果保存成功，重定向到登录页面，并显示注册成功的提示信息
      redirect_to login_path, notice: "注册成功，请登录"
    else
      # 如果保存失败，重新渲染新建用户页面，并返回状态码422（不可处理的实体）
      render :new, status: :unprocessable_entity
    end
  end

  private
  def auth_user
    @user = User.find_by(id: session[:user_id])
    unless @user
      redirect_to login_path, alert: "请先登录"
    end
  end


end
